package com.transaction.demo.message;

import org.springframework.stereotype.Component;

import com.transaction.demo.common.util.Result;
import com.transaction.demo.common.util.ResultPage;
import com.transaction.demo.message.vo.req.ReSendAllDeadMessageByQueueNameReqVo;
import com.transaction.demo.message.vo.req.TransactionMessageAddReqVo;
import com.transaction.demo.message.vo.req.TransactionMessageListReqVo;
import com.transaction.demo.message.vo.req.WaitOrSendMessageListReqVo;
import com.transaction.demo.message.vo.resp.TransactionMessageRespVo;

/**
 * 描述：消息相关操作
 * 作者：马庆智
 * 日期：2023/4/18 14:50
 */
@Component
public class MessageServiceHystrix implements MessageService {

	/**
	 * 查询列表
	 *
	 * @param record 请求参数
	 * @return TransactionMessageResp
	 * @author 马庆智
	 * @date: 2023/04/26 10:29:01
	 */
	@Override
	public Result<ResultPage<TransactionMessageRespVo>> queryTransactionMessageList(
			TransactionMessageListReqVo record) {
		return null;
	}

	/**
	 * 查询待确认或者发送中的的消息
	 *
	 * @param record 请求参数
	 * @return TransactionMessageResp
	 * @author 马庆智
	 * @date: 2023/04/26 10:29:01
	 */
	@Override
	public Result<ResultPage<TransactionMessageRespVo>> queryWaitOrSendMessageList(WaitOrSendMessageListReqVo record) {
		return null;
	}

	/**
	 * 预存储消息.
	 *
	 * @param transactionMessage 消息
	 * @return id
	 * @author 马庆智
	 * @date: 2023/4/27 9:55
	 */
	@Override
	public Result<Integer> saveMessageWaitingConfirm(TransactionMessageAddReqVo transactionMessage) {
		return null;
	}

	/**
	 * 确认并发送消息.
	 *
	 * @param messageId 消息id
	 * @return id
	 * @author 马庆智
	 * @date: 2023/4/27 10:01
	 */
	@Override
	public Result<Integer> confirmAndSendMessage(String messageId) {
		return null;
	}

	/**
	 * 存储并发送消息.
	 *
	 * @param transactionMessage 消息
	 * @return id
	 * @author 马庆智
	 * @date: 2023/4/27 9:55
	 */
	@Override
	public Result<Integer> saveAndSendMessage(TransactionMessageAddReqVo transactionMessage) {
		return null;
	}

	/**
	 * 直接发送消息.
	 *
	 * @param transactionMessage 消息
	 * @return id
	 * @author 马庆智
	 * @date: 2023/4/27 9:55
	 */
	@Override
	public Result<Integer> directSendMessage(TransactionMessageAddReqVo transactionMessage) {
		return null;
	}

	/**
	 * 重发消息.
	 *
	 * @param transactionMessage 消息
	 * @return id
	 * @author 马庆智
	 * @date: 2023/4/27 9:55
	 */
	@Override
	public Result<Integer> reSendMessage(TransactionMessageAddReqVo transactionMessage) {
		return null;
	}

	/**
	 * 根据messageId重发某条消息.
	 *
	 * @param messageId 消息id
	 * @return id
	 * @author 马庆智
	 * @date: 2023/4/27 10:01
	 */
	@Override
	public Result<Integer> reSendMessageByMessageId(String messageId) {
		return null;
	}

	/**
	 * 将消息标记为死亡消息.
	 *
	 * @param messageId 消息id
	 * @return id
	 * @author 马庆智
	 * @date: 2023/4/27 10:01
	 */
	@Override
	public Result<Integer> setMessageToAreadlyDead(String messageId) {
		return null;
	}

	/**
	 * 根据消息ID获取消息.
	 *
	 * @param messageId 消息id
	 * @return TransactionMessageRespVo
	 * @author 马庆智
	 * @date: 2023/4/27 10:01
	 */
	@Override
	public Result<TransactionMessageRespVo> getMessageByMessageId(String messageId) {
		return null;
	}

	/**
	 * 根据消息ID删除消息.
	 *
	 * @param messageId 消息id
	 * @author 马庆智
	 * @date: 2023/4/27 10:01
	 */
	@Override
	public Result<Integer> deleteMessageByMessageId(String messageId) {
		return null;
	}

	/**
	 * 重发某个消息队列中的全部已死亡的消息.
	 *
	 * @param message 消息
	 * @author 马庆智
	 * @date: 2023/4/27 10:01
	 */
	@Override
	public Result<Integer> reSendAllDeadMessageByQueueName(ReSendAllDeadMessageByQueueNameReqVo message) {
		return null;
	}
}
